<?php

class MessagesController extends AppController {

	var $name = 'Messages';
	var $components = array ('Pagination');
	var $helpers = array('Html','Form','Accessibility','Pagination');


	function index() {
		$title = 'Mensagens recebidas';
		$this->set('title',$title);
		$this->set('pageTitle',$title);

		// Recuperando usuário logado
		$user = $this->othAuth->user('id');

		// Filtrando mensagens enviadas para o usuário
		$messages = $this->Message->find('all',array('conditions'=>array('to_id'=>$user), 'order'=>'`Message`.created DESC'));

		// setando variável na view
		$this->set('messages', $messages);
	}

	function view( $id=null ) {
		if (!$id) $this->redirect('/messages');

		$title = 'Visualizar mensagem';
		$this->set('title',$title);
		$this->set('pageTitle',$title);

		$this->Message->id = $id;
		$this->set('message', $this->Message->read());

		$data = $this->Message->read();
		$data['Message']['read'] = 1;

		$this->Message->save($data['Message']);
	}

	function send($to_id = null, $reply = null) {

			$conditions = array();
			$organizationsConditions = array();
			$unitConditions = array();

			// Permissao: se pode visualizar todas as unidades
			$group = $this->othAuth->getData('group');
			$level =$group['level'];
			$unitUser = $this->othAuth->getData('unit');

			$where = ' AND Unit.organization_id ='.$unitUser['0']['Organization']['id'];

			// Filter for present only employee from an organization
			$destinatarios = $this->Message->To->query(
				'SELECT DISTINCT User.name, User.id'.
				/*' FROM volunteers as Volunteer'.*/
				/*' INNER JOIN users as User ON Volunteer.user_id = User.id'.*/
				' FROM users as User'.
				' INNER JOIN units_users as UnitUser ON User.id = UnitUser.user_id'.
				' INNER JOIN units as Unit ON UnitUser.unit_id = Unit.id'.
				' WHERE 1 = 1 '.$where
			);
			//pr($destinatarios);
			$this->set('destinatarios',$destinatarios);


			$this->set('to_id',$to_id);

			$title = 'Enviar mensagem';
			$this->set('title',$title);
			$this->set('pageTitle',$title);

			$user = $this->Message->To->findById($to_id);

			if($reply != null){
				$original = $this->Message->findById($reply);
				$this->set('reply',$original);
			}

			$this->set('user', $user);

			if (!empty($this->data)) {

				$unitUser = $this->othAuth->getData('user');

				$this->data['Message']['from_id'] = $this->othAuth->user('id');
				$this->data['Message']['replied'] = $reply;
				$this->data['Message']['read'] = 0;

			// Validando as informacoes do fórum

				if($this->data["Message"]["subject"]  == null) {
					$_SESSION['mensagem']['error'][] = 'O campo Título é obrigatório.';
				}
				if($this->data["Message"]["subject"]  == null) {
					$_SESSION['mensagem']['error'][] = 'O campo Assunto é obrigatório.';
				}
				if($this->data["Message"]["text"]  == null) {
					$_SESSION['mensagem']['error'][] = 'O campo Mensagem é obrigatório.';
				}

				if (isset($_SESSION['mensagem']['error'])) {
					return;
				}


				if ($this->Message->save($this->data)) {
					$_SESSION['mensagem']['success'][] = 'Mensagem enviada com sucesso!';
				} else {
					$_SESSION['mensagem']['error'][] = 'Erro ao tentar cadastrar o post.';
				}
				$this->redirect('/messages');

			}

	}

	function delete($id) {
		if (!$id) $this->redirect('/messages');

		if ($this->Message->del($id)) {
			$_SESSION['mensagem']['success'][] = 'Mensagem excluida com sucesso!';
		} else {
			$_SESSION['mensagem']['error'][] = 'Erro ao tentar excluir mensagem.';
		}
		$this->redirect('/messages');
	}
}
?>